package tenth.通配符;

public class 使用泛型声明后的对象引用传递问题 {
    public static void main(String[] args) {
        Info<String> i = new Info<String>();
        i.setVar("李四");
        fun(i); //错误，无法传递
        /**
         * 上面的程序中尽管String是Object的子类，但是在进行引用爨地的时候同样也无法进行操作。
         * 如果此时想要让程序正确的执行，则可将fun()方法中定义的Info<Object> 改成 Info
         * 即不指定泛型
         */
    }

    /*
    D:\WorkSpaces\Java\jdk-21\bin\java.exe "-javaagent:D:\Software\IntelliJ IDEA\IntelliJ IDEA 2023.3.2\lib\idea_rt.jar=52995:D:\Software\IntelliJ IDEA\IntelliJ IDEA 2023.3.2\bin" -Dfile.encoding=UTF-8 -Dsun.stdout.encoding=UTF-8 -Dsun.stderr.encoding=UTF-8 -classpath D:\WorkSpaces\JavaDevelopBase_start_329\out\production\JavaDevelopBase_start_329 tenth.通配符.使用泛型声明后的对象引用传递问题
内容：李四

Process finished with exit code 0
     */

    // public static void fun(Info<Object> temp) {  // 此处可以接收Object类型的Info对象
    public static void fun(Info temp) {  // 不指定泛型
        System.out.println("内容：" + temp);
    }
}
/*
D:\WorkSpaces\JavaDevelopBase_start_329\src\tenth\通配符\使用泛型声明后的对象引用传递问题.java:7:13
java: 不兼容的类型: tenth.通配符.Info<java.lang.String>无法转换为tenth.通配符.Info<java.lang.Object>
 */